package com.qdlc.p2p.dal.mybatis.model.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.qdlc.p2p.dal.dto.Message;

/**
 * 站内信Mapper接口
 * 对应于message表
 * @author linya
 */
public interface MessageMapper {
    
	/**
	 * 插入记录
	 * @param message
	 */
	void insert(Message message);
	
	/**
	 * 修改记录
	 * @param message
	 */
	void update(Message message);
	
	/**
	 * 根据id查询站内信
	 * @param id
	 * @param userId
	 */
	Message find(@Param("id")long id, @Param("userId")long userId);
	
	/**
	 * 
	 * @param receiveUserId
	 * @return
	 */
	int unreadCount(long receiveUserId);
	
    /**
     * 获取接收者的Message记录
     * @param receiveUserId
     * @return
     */
    List<Message> receiveList(long receiveUserId);
    
    
    /**
     * 获取发送者的Message记录
     * @param sentUserId
     * @return
     */
    List<Message> sentList(long sentUserId);
    
    
    /**
     * 根据title模糊查询
     * @param title
     * @return
     */
    List<Message> findByTitle(@Param("title")String title);
    
    
    /**
     * 设置站内信已读
     * @param id
     * @param receiveUserId
     */
    void setRead(long id, long receiveUserId);
    
    /**
     * 根据Ids删除接收者站内信
     * @param ids
     * @param receiveUserId
     */
    void delReceiveList(@Param("ids")Object[] ids, @Param("receiveUserId")long receiveUserId);
    
    /**
     * 根据Ids删除发送者站内信
     * @param ids
     * @param receiveUserId
     */
    void delSentList(@Param("ids")Object[] ids, @Param("sentUserId")long sentUserId);
    
    
    /**
     * 设置站内信已读
     * @param ids
     * @param receiveUserId
     */
    void setReadList(@Param("ids")Object[] ids, @Param("receiveUserId")long receiveUserId);
    
    
    /**
     * 设置站内信未读
     * @param ids
     * @param receiveUserId
     */
    void setUnreadList(@Param("ids")Object[] ids, @Param("receiveUserId")long receiveUserId);
    
}